查看原文
其他

破解PCIe SSD进化:从踩坑到解决方案

2014-11-11 黄亮 企业存储技术

PCIe闪存相对SASSATASSD的优势


当我们在十几年前开始使用U盘时,只看到它的便携与易用,估计很少有人还意识到闪存蕴藏着巨大的性能潜力。


今天,包括PCIeSSD在内的闪存存储在企业级应用中的普及,归根结底要归功于半导体技术的发展。一方面,CPU性能越来越快,而发展缓慢的硬盘越发显得跟不上;另一方面,以NAND闪存为代表的半导体存储容量密度增大,而且越来越便宜。当那个拐点的时间到来,人们发现用小小的SSD能顶上几十甚至上百块硬盘的性能。

在企业级SSD发展初期,更多的应用形式是安装在EMC等存储系统厂商的阵列中,替代磁盘的SASSDD;或者服务器里面使用的SATASSD。它们能够与传统硬盘控制器良好兼容,但当时主流的SATASAS接口带宽只有3Gb/s或者6Gb/s300-600MB/s),如今12Gb/sSAS还没有普及,而x8PCIe 2.0的理论带宽已经达到4GB/sPCIe3.0更是翻了一倍。

此外,针对传统硬盘设计的SAS控制器自身也存在性能瓶颈,那么“有路何须搭桥”?直接将闪存做到PCIe卡上显然速度和延时都会更好,服务器的存储架构也变得更加简单,甚至实际量产的成本都会降低。

这就是今天PCIeSSD越发流行的原因。

产品架构之间的PK

PCIe SSD从架构设计方面来区分,包括FPGA/ASIC原生控制器方案和SASIOC转接SAS/SATA SSD模块几种方式。

SAS转接方案:尽管笔者一直不看好SAS转接方案的长远发展,但兼容性好和成熟的架构是它最大的优势。产品形态就是把SAS控制器连接的多个SSD盘RAID0做在一张PCIe卡上,因此他们的Firmware(固件)和主机端驱动与SASHBA基本通用,兼容绝大多数的服务器、各种操作系统版本都没有问题。

SAS转接方案的PCIeSSD现在很少宣传其性能,毕竟这方面对比原生PCIe闪存控制器没有优势。不过,如今几乎所有PCIe闪存卡的性能对企业级客户都不是问题(这也是我们把兼容性和可靠性放在前面讲的原因),因此目前市面上OracleExadata数据库一体机就用的SAS转接PCIeSSD,最近还有国内云和恩墨用EMCScaleIO分布式SAN软件搭建的Oracle预集成系统。

总的来说,SAS转接PCIe SSD的多芯片控制方案从效率、成本上都不占优。因此我们几乎只看到LSI这一家先天有利的厂商(该部门如今已卖给希捷)在该领域表现尚可,Intel搞了一段过渡的SSD910今年也推出自有ASIC控制器的NVMe产品了。

FPGA/ASIC原生方案:FPGA(现场可编程门阵列)的特点是设计灵活性强,在现有的芯片上通过不同的软件(Firmware)就可以定义出差异化的闪存卡(盘),并且易于升级。这种低门槛方案非常适合中小规模的厂商。FPGA芯片的缺点是封装尺寸和发热量比ASIC较大,数量达到一定规模后成本不如ASIC。代表厂商是PCIe闪存卡领域的先行者,被SanDisk收购的Fusion-io,被HGST收购的Virident,以及国内的Memblaze和Shannon宝存科技等。



1:曾经是PCIeSSD单卡容量之冠的Fusion-ioioScale 3.2TB。当年它从Facebook走出,带有为互联网行业定制,高性价比的特点。令人可喜的是,今年全球率先达到单卡6.4TB容量的宝存科技是一家国内厂商。

当PCIe闪存卡向着的容量越来越大、性能越来越高的方向发展,单卡的功耗就容易超过普通PCIe插槽的25W限制。像SFF-8639尺寸的2.5英寸驱动器形式,插在服务器的前端密度更大,还要注意散热的问题。这时功能相对固定,但功耗较低的ASIC就体现出价值了。但设计出一颗优秀的ASIC,仅仅是流片成功都要付出巨大的成本。目前比较多见的原生PCIeSSDASIC有被芯片厂商PMC收购的IDT产品线,曾用于美光(Micron)的卡和盘;再有就是Intel和三星这样的巨头;我差点忘了MarvellSandForce(几经转手被希捷收购),尽管后者的原生PCIeSSD控制器应该还不能量产出货,但价格和对技术门槛要求低向来是他们的优势。


NVMe横空出世

NVM Express(NVMe)是一种为企业级、客户端系统所用的PCIExpressSSD而专门设计的高性能、可扩展主机控制接口。它由Intel等十几个发起成员公司领导,以及数十个成员组成的行业联盟共同开发。

NVMe主要解决的问题,或者说好处主要包括以下几点

(1) 标准化的驱动,比如较高版本的Linux内核集成通用的NVMeSSD驱动程序

(2) 精简优化的存储堆栈,提高效率。比如支持更大的队列深度、MSI-X将IO产生的中断更好的分配到多个CPU核心上,避免出现性能瓶颈。

(3) NVMe还有个好处,就是它不仅盯着NAND闪存,还宣称考虑了下一代性能更高的非易失性半导体存储介质。就眼前来看,已经有人拿DRAM放在NVMe卡上跑Demo,也有厂商做出了类似的产品。

更多背景资料参见:

NVMe:PCIeSSD标准不断完善,直指Fusion-io

IDF2013:NVMExpress目标SAN共享存储

除了性能考虑、驱动层面对热插拔更好的支持之外,如果各家的PCIe SSD都同样使用操作系统自带的驱动,无疑对用户是个好事情——至少能减少许多测试和验证工作。但另一方面,SSD个性化的增强功能,目前主要是状态监控,乃至于进一步增值的缓存软件、RAID支持等都可能要依赖厂商专门的驱动。如果是带来同质化的结果,最后拼供应链和成本,这个市场剩下的估计只有三星、美光等NAND闪存厂商和Intel这样的业界巨头。

NVMe最初是在Fusion-io一家独大的情况下出现。到了如今PCIeSSD百花齐放的时代,NVMe产品也接近成熟,但由于各家厂商的利益不一致,对NVMe支持的力度也不尽相同。

有几位业内朋友的观点可以作为参考:“美国人和国内对于NVMe的态度、普及时间上有些差距。美国人觉得NVMe没有那么快成熟,而且热插拔没有行业标准,暂时还不可靠,产品之间不兼容。感觉国内几大家都已经要扑上去了。”

“注意各家的驱动不兼容。都不是用的原始驱动,因为性能不够。而且目前价格可真不便宜。

“某国外服务器厂商对NVMe的支持,推迟到2015年下半年,可能仍会延期。因性价比还不如任何一家‘非标准’的PCIeSSD。”



接下篇:二、用户最该关注兼容性、稳定性、性能和服务

三、解决方案和全闪存阵列:向左还是向右?

四、PCIe双端口支持、没有控制器的SSD?

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存